const http = require('http')
const mongoose = require('mongoose')
const querystring = require('querystring');
const url = require('url')
// 连接本地数据库
mongoose.connect('mongodb://localhost/mxtest')

// 建立模板要求
var userSchema = mongoose.Schema({
    username: String,
    password: String,
    email: String,
    tele: String
})
// 模板转化为模型
var userModel = mongoose.model('userInfo', userSchema, 'userInfo');

// 开启WEB服务
const port = 9999

const server = http.createServer((req, res) => {
    res.setHeader("Access-Control-Allow-Origin", "*")
    res.setHeader("Access-Control-Allow-Methods", "POST");
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.setHeader("X-Powered-By", ' 3.2.1')
    res.setHeader("Content-Type", "application/json;charset=utf-8");
    //1.创建空字符叠加数据片段
    var data = '';

    //2.注册data事件接收数据（每当收到一段表单提交的数据，该方法会执行一次）
    req.on('data', function (chunk) {
        // chunk 默认是一个二进制数据，和 data 拼接会自动 toString
        data += chunk;
    });

    // 3.当接收表单提交的数据完毕之后，就可以进一步处理了
    //注册end事件，所有数据接收完成会执行一次该方法
    //使用querystring对url进行反序列化（解析url将&和=拆分成键值对），得到一个对象
    req.on('end', function () {
        data = querystring.parse(data);

        userModel.updateOne({
            tele: data.tele,
            password: data.oldMM
        }, {
            password: data.newMM
        }, function (error) {
            if (error) {
                let obj = {
                    code: 200,
                    message: '修改数据出错'
                }
                res.end(JSON.stringify(obj))
            } else {
                let obj = {
                    code: 200,
                    message: '修改成功'
                }
                res.end(JSON.stringify(obj))
            }
        })
    });
})

server.listen(port, function () {
    console.log('正在监听http://localhost:9999')
})